home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1997 #1 / Amiga Plus CD - 1997 - No. 01.iso / pd / sonstiges / spontimag10 / owindow.h < prev    next >
C/C++ Source or Header  |  1996-10-14  |  2KB  |  108 lines

  1. /****** OWindow.h ***********************************************
  2. *
  3. *   PROGRAM
  4. *      OWindow
  5. *
  6. *   CONTENTS
  7. *      C++-class definitions for creating a simple window, and parsing messages.
  8. *
  9. *   AUTHOR
  10. *      Georg Pfundt
  11. *
  12. *   COPYRIGHT
  13. *      © by Georg Pfundt   14-OCT-1996
  14. *
  15. *   LANGUAGE
  16. *      ANSI-C
  17. *
  18. *   TRANSLATOR
  19. *      SAS-C V6.55
  20. *
  21. *   HISTORY
  22. *      1.0, GeP, 14-OCT-1996, first version
  23. *      <Version, Autor, Datum, Bemerkung>
  24. *
  25. *   SUPPORT
  26. *      None.
  27. *
  28. *   IMPORTS
  29. *      None.
  30. *
  31. *   BUGS
  32. *      None known.
  33. *
  34. *   ADDRESS
  35. *      Georg Pfundt, Im Oberviertel 18, 76229 Karlsruhe, Germany
  36. *
  37. *   PHONE
  38. *      +49 (0)721/481591
  39. *      E-Mail: gp@ict.fhg.de
  40. *
  41. *   UPDATE
  42. *
  43. ********************************************************************
  44. * TABSIZE=2
  45. */
  46.  
  47. #include <exec/types.h>
  48. #include <proto/Exec.h>
  49. #include <proto/Graphics.h>
  50. #include <proto/Intuition.h>
  51.  
  52.  
  53. /* External libbases for autoinitialisation */
  54. extern struct IntuitionBase *IntuitionBase;
  55. extern struct GfxBase *GfxBase;
  56.  
  57.  
  58. // Define Class for creating a window
  59. class OWindow
  60. {
  61.   public:
  62.     // Constructor
  63.     OWindow(const char *name, const ULONG width, const ULONG height,
  64.                    const ULONG xofs=0L, const ULONG yofs=0L);
  65.         // Destructor
  66.         virtual ~OWindow(void);
  67.  
  68.         // Check for good initialisation
  69.         inline BOOL IsOK(void) {return this->window != NULL;};
  70.  
  71.         // Pointer to window rastport for drawing
  72.         struct RastPort *RP;
  73.  
  74.         // Event types that are parsed and returned.
  75.         enum OW_Event_T {OW_None, OW_Close};
  76.         typedef OW_Event_T OW_Event;
  77.  
  78.  
  79.         // Check for new Message, remove it from queue, parse and reply
  80.     OW_Event CheckMessage(void);
  81.  
  82.         // Wait for new Message, remove it from queue, parse and reply
  83.     OW_Event WaitMessage(void);
  84.  
  85.  
  86.     // Get Inner dimensions of Window (usable dimensions)
  87.     inline ULONG GetInnerWidth(void) {
  88.          return (LONG)(window->Width) - (LONG)(window->BorderLeft)
  89.                  - (LONG)(window->BorderRight);}
  90.     inline ULONG GetInnerHeight(void) {
  91.          return (LONG)(window->Height) - (LONG)(window->BorderTop)
  92.                  - (LONG)(window->BorderBottom);}
  93.  
  94.     // Get Drawing offset
  95.     inline WORD GetLeftOffset(void) {return window->BorderLeft;}
  96.     inline WORD GetTopOffset(void) {return window->BorderTop;}
  97.  
  98.  
  99.     private:
  100.     // Pointer to Window
  101.         struct Window *window;
  102.  
  103.         // Parse Window Message
  104.         OW_Event ParseMessage(struct IntuiMessage *imsg);
  105.  
  106.  
  107. };
  108.